from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 猛系技能(主动技能):
    闪CDR = 1.0
    猛倍率 = 1.0
    形态 = ["猛击", "普通"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "普通":
            self.猛倍率 = 1.0
            self.闪CDR = 1.0
        if 形态 == "猛击":
            self.猛倍率 = char.get_skill_by_name("装载：猛击").猛加成倍率()
            self.闪CDR = char.get_skill_by_name("装载：闪攻").闪加成CDR()

    def 等效CD(self, **argv):
        # 武器类型 输出类型 额外CDR 手搓收益 恢复
        武器类型 = argv.get('武器类型', '')
        输出类型 = argv.get('输出类型', '')
        额外CDR = argv.get('额外CDR', 1.0)
        # 手搓收益 = argv.get('手搓收益', 1.0)
        面板显示 = argv.get('面板显示', False)
        额外恢复 = argv.get('额外恢复', 0)

        cdr = self.手搓CD()

        return round(max(self.CD * self.CDR * self.闪CDR * 额外CDR / ((self.恢复 + 额外恢复) if not 面板显示 else 1) * (self.武器CD系数(武器类型, 输出类型) - (cdr if not 面板显示 else 0)), self.CD * 0.3)*self.CDR_O, 1)

    def 等效百分比(self, **argv):
        return super().等效百分比(**argv)*self.猛倍率


class 技能0(主动技能):  # 基础精通
    名称 = '基础精通'
    倍率 = 1.0

    所在等级 = 1
    等级上限 = 200
    学习间隔 = 1
    等级精通 = 110

    是否主动 = 0

    关联技能 = ['迷雾箭雨']

    TP成长 = 0.10
    TP上限 = 5  # 基础精通

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.倍率 * (0.463 + 0.089 * self.等级) * self.TP加成(), 5)


class 技能1(主动技能):
    名称 = "迷雾箭雨"
    所在等级 = 15
    等级上限 = 1
    学习间隔 = 2
    等级精通 = 1
    CD = 4
    MP = [29, 29]
    无色消耗 = 0
    data0 = [0, 422]
    hit0 = 3
    CD = 4.0
    TP成长 = 0
    TP上限 = 1

    def TP加成(self):
        if self.TP等级 > 0:
            return 3 * 0.4
        else:
            return 1


class 技能2(主动技能):
    名称 = "驱虫烈火"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 7
    MP = [68, 401]
    无色消耗 = 0
    data0 = [0, 2953, 3253, 3552, 3852, 4152, 4451, 4751, 5051, 5350, 5650, 5950, 6249, 6549, 6849, 7148, 7448, 7748, 8047, 8347, 8647, 8946, 9246, 9545, 9845, 10145, 10444, 10744, 11044, 11343, 11643, 11943, 12242, 12542, 12842, 13141, 13441,
             13741, 14040, 14340, 14640, 14939, 15239, 15538, 15838, 16138, 16437, 16737, 17037, 17336, 17636, 17936, 18235, 18535, 18835, 19134, 19434, 19734, 20033, 20333, 20633, 20932, 21232, 21531, 21831, 22131, 22430, 22730, 23030, 23329, 23629]
    hit0 = 1
    data1 = [0, 738, 813, 888, 963, 1038, 1112, 1187, 1262, 1337, 1412, 1487, 1562, 1637, 1712, 1787, 1862, 1937, 2011, 2086, 2161, 2236, 2311, 2386, 2461, 2536, 2611, 2686, 2761, 2835, 2910, 2985, 3060, 3135, 3210,
             3285, 3360, 3435, 3510, 3585, 3660, 3734, 3809, 3884, 3959, 4034, 4109, 4184, 4259, 4334, 4409, 4484, 4558, 4633, 4708, 4783, 4858, 4933, 5008, 5083, 5158, 5233, 5308, 5382, 5457, 5532, 5607, 5682, 5757, 5832, 5907]
    hit1 = 1

    CD = 7.0
    TP成长 = 0.10
    TP上限 = 7


class 技能3(被动技能):
    名称 = '玄机弓精通'
    所在等级 = 20
    等级上限 = 20
    学习间隔 = 3
    等级精通 = 10

    # 物理攻击力加成
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.22 + 0.02 * self.等级, 5)


class 技能4(主动技能):
    名称 = "三重加速"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6
    MP = [55, 325]
    无色消耗 = 0
    data0 = [0, 447, 492, 538, 584, 629, 675, 720, 765, 811, 856, 901, 947, 992, 1038, 1084, 1129, 1174, 1220, 1265, 1310, 1355, 1401, 1447, 1492, 1538, 1583, 1628, 1674, 1719, 1764, 1810, 1855, 1901, 1947, 1992,
             2037, 2083, 2128, 2173, 2219, 2264, 2309, 2356, 2401, 2446, 2492, 2537, 2582, 2628, 2673, 2718, 2765, 2810, 2855, 2900, 2946, 2991, 3036, 3082, 3127, 3172, 3219, 3264, 3309, 3355, 3400, 3445, 3491, 3536, 3581]
    hit0 = 3
    data1 = [0, 672, 740, 808, 876, 943, 1011, 1080, 1148, 1216, 1284, 1352, 1420, 1488, 1557, 1625, 1693, 1761, 1829, 1897, 1966, 2034, 2102, 2170, 2238, 2306, 2374, 2443, 2511, 2579, 2647, 2715, 2783, 2852, 2920, 2988,
             3056, 3124, 3192, 3261, 3329, 3397, 3465, 3533, 3601, 3669, 3738, 3806, 3874, 3942, 4010, 4078, 4147, 4215, 4283, 4351, 4419, 4487, 4555, 4624, 4692, 4760, 4828, 4896, 4964, 5033, 5101, 5169, 5237, 5304, 5372]
    hit1 = 3
    data2 = [0, 224, 246, 269, 291, 314, 337, 359, 382, 405, 427, 450, 473, 495, 519, 542, 564, 587, 610, 632, 655, 678, 700, 723, 746, 768, 791, 814, 836, 859, 882, 904, 927, 951, 973, 996, 1019, 1041,
             1064, 1087, 1109, 1132, 1155, 1177, 1200, 1223, 1245, 1268, 1291, 1313, 1336, 1359, 1382, 1405, 1428, 1450, 1473, 1496, 1518, 1541, 1564, 1586, 1609, 1632, 1654, 1677, 1700, 1722, 1745, 1767, 1790]
    hit2 = 3
    data3 = [0, 447, 492, 538, 584, 629, 675, 720, 765, 811, 856, 901, 947, 992, 1038, 1084, 1129, 1174, 1220, 1265, 1310, 1355, 1401, 1447, 1492, 1538, 1583, 1628, 1674, 1719, 1764, 1810, 1855, 1901, 1947, 1992,
             2037, 2083, 2128, 2173, 2219, 2264, 2309, 2356, 2401, 2446, 2492, 2537, 2582, 2628, 2673, 2718, 2765, 2810, 2855, 2900, 2946, 2991, 3036, 3082, 3127, 3172, 3219, 3264, 3309, 3355, 3400, 3445, 3491, 3536, 3581]
    hit3 = 3
    CD = 6.0
    TP成长 = 0.10
    TP上限 = 7


class 技能5(主动技能):
    名称 = "急流"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 8
    MP = [82, 486]
    无色消耗 = 0
    data0 = [0, 440, 485, 529, 574, 619, 663, 708, 753, 797, 842, 887, 931, 976, 1021, 1065, 1110, 1155, 1199, 1244, 1289, 1333, 1378, 1423, 1467, 1512, 1557, 1601, 1646, 1691, 1736, 1780, 1825, 1870, 1914, 1959,
             2004, 2048, 2093, 2138, 2182, 2227, 2272, 2316, 2361, 2406, 2450, 2495, 2540, 2584, 2629, 2674, 2718, 2763, 2808, 2852, 2897, 2942, 2986, 3031, 3076, 3120, 3165, 3210, 3255, 3299, 3344, 3389, 3433, 3478, 3523]
    hit0 = 4
    data1 = [0, 3729, 4108, 4486, 4865, 5243, 5621, 6000, 6378, 6757, 7135, 7513, 7892, 8270, 8649, 9027, 9405, 9784, 10162, 10541, 10919, 11298, 11676, 12054, 12433, 12811, 13190, 13568, 13946, 14325, 14703, 15082, 15460, 15838, 16217, 16595,
             16974, 17352, 17730, 18109, 18487, 18866, 19244, 19622, 20001, 20379, 20758, 21136, 21514, 21893, 22271, 22650, 23028, 23406, 23785, 24163, 24542, 24920, 25298, 25677, 26055, 26434, 26812, 27190, 27569, 27947, 28326, 28704, 29082, 29461, 29839]
    hit1 = 1
    CD = 8.0
    TP成长 = 0.10
    TP上限 = 7


class 技能6(主动技能):
    名称 = "细雨"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 7
    MP = [72, 426]
    无色消耗 = 0
    data0 = [0, 5311, 5849, 6388, 6927, 7465, 8004, 8543, 9082, 9621, 10160, 10699, 11237, 11776, 12315, 12853, 13392, 13931, 14470, 15009, 15548, 16087, 16625, 17164, 17703, 18241, 18780, 19319, 19858, 20397, 20936, 21474, 22013, 22552, 23091, 23629,
             24168, 24707, 25246, 25785, 26324, 26862, 27401, 27940, 28478, 29017, 29556, 30095, 30634, 31173, 31712, 32250, 32789, 33328, 33866, 34405, 34944, 35482, 36022, 36561, 37100, 37638, 38177, 38716, 39254, 39793, 40332, 40870, 41410, 41949, 42488]
    hit0 = 1
    CD = 7.0
    TP成长 = 0.10
    TP上限 = 7


class 技能7(主动技能):
    名称 = "高原雾花"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 12
    MP = [146, 865]
    无色消耗 = 0
    data0 = [0, 1069, 1178, 1286, 1395, 1503, 1612, 1720, 1829, 1937, 2046, 2154, 2263, 2371, 2480, 2588, 2697, 2805, 2914, 3022, 3131, 3239, 3348, 3456, 3565, 3673, 3782, 3890, 3999, 4107, 4216, 4324, 4433, 4541, 4650,
             4758, 4867, 4975, 5084, 5192, 5301, 5409, 5518, 5626, 5735, 5843, 5952, 6060, 6169, 6277, 6386, 6494, 6603, 6711, 6820, 6928, 7037, 7145, 7254, 7362, 7471, 7579, 7688, 7796, 7905, 8013, 8122, 8230, 8339, 8447, 8556]
    hit0 = 8

    CD = 12.0
    TP成长 = 0.10
    TP上限 = 5


class 技能8(猛系技能):
    名称 = "装置驱动"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 15
    MP = [183, 1081]
    无色消耗 = 1
    data0 = [0, 10608, 11684, 12760, 13836, 14912, 15988, 17065, 18141, 19217, 20293, 21369, 22446, 23522, 24598, 25674, 26750, 27827, 28903, 29979, 31055, 32131, 33207, 34284, 35360, 36436, 37512, 38588, 39665, 40741, 41817, 42893, 43969, 45045, 46122,
             47198, 48274, 49350, 50426, 51503, 52579, 53655, 54731, 55807, 56883, 57960, 59036, 60112, 61188, 62264, 63341, 64417, 65493, 66569, 67645, 68721, 69798, 70874, 71950, 73026, 74102, 75179, 76255, 77331, 78407, 79483, 80559, 81636, 82712, 83788, 84864]
    hit0 = 1
    CD = 15.0
    TP成长 = 0.10
    TP上限 = 5

    MP = [45, 850]
    无色消耗 = 1

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.37


class 技能9(主动技能):
    名称 = '旅行者的直觉'
    所在等级 = 35
    等级上限 = 20
    学习间隔 = 2
    等级精通 = 10
    是否有伤害 = 0

    # 物理攻击力加成
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.0 + 0.02 * self.等级, 5)


class 技能10(猛系技能):
    名称 = "浓雾暴雨"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 18
    MP = [254, 1502]
    无色消耗 = 1
    data0 = [0, 2091, 2303, 2515, 2727, 2940, 3152, 3364, 3576, 3788, 4001, 4213, 4425, 4637, 4849, 5062, 5275, 5487, 5699, 5911, 6123, 6336, 6548, 6760, 6972, 7184, 7396, 7609, 7821, 8033, 8245, 8457, 8670, 8882, 9094, 9306, 9518, 9730,
             9943, 10155, 10367, 10579, 10791, 11003, 11216, 11428, 11640, 11852, 12064, 12277, 12489, 12701, 12913, 13125, 13337, 13550, 13762, 13974, 14186, 14398, 14611, 14823, 15035, 15247, 15459, 15671, 15884, 16096, 16308, 16520, 16733]
    hit0 = 6

    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [150, 1260]
    无色消耗 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.34
        self.CDR *= 0.9


class 技能11(主动技能):
    名称 = "装载：猛击"
    所在等级 = 40
    等级上限 = 1
    学习间隔 = 3
    等级精通 = 1
    CD = 15
    MP = [68, 68]
    无色消耗 = 0
    猛倍率 = 1.1

    def 猛加成倍率(self):
        if self.等级 > 0:
            return self.猛倍率
        else:
            return 1


class 技能12(被动技能):
    名称 = "装载：闪攻"
    所在等级 = 40
    等级上限 = 1
    学习间隔 = 3
    等级精通 = 1
    闪CDR = 0.9

    def 闪加成CDR(self):
        if self.等级 > 0:
            return self.闪CDR
        else:
            return 1


class 技能13(主动技能):
    名称 = "神雾兵仗·流星"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 10
    MP = [109, 643]
    无色消耗 = 1
    data0 = [0, 7410, 8161, 8913, 9665, 10417, 11168, 11920, 12672, 13424, 14175, 14927, 15679, 16431, 17182, 17934, 18686, 19438, 20189, 20941, 21693, 22445, 23196, 23948, 24700, 25452, 26203, 26955, 27707, 28459, 29210, 29962, 30714, 31466, 32217, 32969,
             33721, 34473, 35224, 35976, 36728, 37480, 38231, 38983, 39735, 40487, 41238, 41990, 42742, 43494, 44245, 44997, 45749, 46501, 47252, 48004, 48756, 49508, 50259, 51011, 51763, 52515, 53266, 54018, 54770, 55522, 56273, 57025, 57777, 58529, 59280]
    hit0 = 1
    data1 = [0, 1058, 1165, 1273, 1380, 1488, 1595, 1702, 1810, 1917, 2025, 2132, 2239, 2347, 2454, 2562, 2669, 2776, 2884, 2991, 3099, 3206, 3313, 3421, 3528, 3636, 3743, 3850, 3958, 4065, 4172, 4280, 4387, 4495, 4602,
             4709, 4817, 4924, 5032, 5139, 5246, 5354, 5461, 5569, 5676, 5783, 5891, 5998, 6106, 6213, 6320, 6428, 6535, 6643, 6750, 6857, 6965, 7072, 7179, 7287, 7394, 7502, 7609, 7716, 7824, 7931, 8039, 8146, 8253, 8361, 8468]
    hit1 = 0

    CD = 10.0
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    形态 = ['爆炸', '散射']

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "爆炸":
            self.hit0 = 1
            self.hit1 = 0
        if 形态 == "散射":
            self.hit0 = 0
            self.hit1 = 7

    def 装备护石(self, char):
        self.倍率 *= 1.08
        if char.get_skill_by_name("手动式离合器").等级 > 0:
            self.CDR *= 0.72
        else:
            self.CDR *= 0.8
        pass


class 技能14(被动技能):
    名称 = '野外生存'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.025 + 0.02 * self.等级, 5)


class 技能15(主动技能):
    名称 = "旷野火炎"
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 145
    MP = [1420, 6378]
    无色消耗 = 5
    data0 = [0, 4947, 6094, 7241, 8388, 9536, 10683, 11830, 12977, 14124, 15271, 16419, 17566, 18713, 19860, 21007, 22155, 23302, 24449, 25596, 26743, 27891, 29038, 30185, 31332, 32479,
             33627, 34774, 35921, 37068, 38215, 39362, 40510, 41657, 42804, 43951, 45098, 46246, 47393, 48540, 49687, 50834, 51982, 53129, 54276, 55423, 56570, 57718, 58865, 60012, 61159]
    hit0 = 10
    data1 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
             100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
    hit1 = 1

    def 等效百分比(self, **argv):
        if self.等级 >= 6:
            self.倍率 = 1.1
        return super().等效百分比(**argv)


class 技能16(猛系技能):
    名称 = "登跃飞锚"
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 25
    MP = [292, 1313]
    无色消耗 = 1
    data0 = [0, 1967, 2166, 2366, 2566, 2766, 2965, 3164, 3364, 3564, 3764, 3962, 4162, 4362, 4562, 4762, 4960, 5160, 5360, 5560, 5759, 5959, 6158, 6358, 6558, 6757,
             6957, 7156, 7356, 7555, 7755, 7955, 8155, 8354, 8553, 8753, 8953, 9153, 9351, 9551, 9751, 9951, 10151, 10349, 10549, 10749, 10949, 11149, 11348, 11547, 11747]
    hit0 = 1
    data1 = [0, 297, 327, 357, 387, 417, 447, 478, 508, 538, 569, 598, 628, 658, 689, 719, 749, 780, 810, 839, 869, 900, 930, 960, 990, 1021, 1051,
             1080, 1111, 1141, 1171, 1201, 1232, 1262, 1292, 1321, 1352, 1382, 1412, 1443, 1473, 1503, 1533, 1564, 1593, 1623, 1654, 1684, 1714, 1744, 1775]
    hit1 = 12
    data2 = [0, 13771, 15169, 16565, 17963, 19360, 20758, 22154, 23552, 24949, 26346, 27743, 29140, 30537, 31934, 33332, 34729, 36126, 37523, 38921, 40317, 41715, 43112, 44509, 45906,
             47303, 48700, 50097, 51495, 52892, 54289, 55686, 57084, 58480, 59878, 61275, 62672, 64069, 65466, 66863, 68260, 69658, 71055, 72452, 73849, 75247, 76643, 78041, 79438, 80835, 82232]
    hit2 = 1

    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [400, 1620]
    无色消耗 = 1

    def 装备护石(self, char):
        self.CD = 12.5
        self.倍率 *= 0.58
        self.power1 = 1.26


class 技能17(猛系技能):
    名称 = "神雾兵仗·妖旋风"
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 45
    MP = [480, 2153]
    无色消耗 = 2
    data0 = [0, 717, 789, 862, 935, 1007, 1080, 1153, 1226, 1299, 1371, 1444, 1516, 1589, 1662, 1735, 1808, 1881, 1953, 2026, 2098, 2171, 2244, 2316, 2390,
             2463, 2535, 2608, 2680, 2753, 2826, 2898, 2972, 3045, 3117, 3190, 3262, 3335, 3408, 3480, 3554, 3627, 3699, 3772, 3844, 3917, 3990, 4062, 4135, 4209, 4281]
    hit0 = 10
    data1 = [0, 2868, 3159, 3449, 3741, 4031, 4323, 4613, 4905, 5195, 5486, 5777, 6068, 6359, 6650, 6941, 7232, 7523, 7814, 8105, 8396, 8687, 8977, 9269, 9559, 9851, 10141,
             10433, 10723, 11015, 11305, 11597, 11887, 12179, 12469, 12761, 13051, 13343, 13633, 13925, 14215, 14507, 14797, 15088, 15379, 15670, 15961, 16252, 16543, 16834, 17125]
    hit1 = 10

    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.1
        self.CDR *= 0.9
        pass


class 技能18(猛系技能):
    名称 = "流雾疾风"
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 40
    MP = [987, 4433]
    无色消耗 = 3
    data0 = [0, 3192, 3515, 3840, 4163, 4487, 4811, 5135, 5459, 5782, 6106, 6430, 6754, 7078, 7402, 7726, 8049, 8373, 8697, 9021, 9345, 9669, 9992, 10316, 10640, 10964, 11288,
             11612, 11936, 12259, 12584, 12907, 13231, 13555, 13878, 14203, 14526, 14851, 15174, 15497, 15822, 16145, 16470, 16793, 17118, 17441, 17764, 18089, 18412, 18737, 19060]
    hit0 = 20

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 10
        self.data1 = self.data0
        self.hit1 = 1
        self.power1 = 13.6 + 4.2


class 技能19(被动技能):
    名称 = '流浪之星的纹章'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.22 + 0.02 * self.等级, 5)


class 技能20(被动技能):
    名称 = '自动操作模式'
    所在等级 = 75
    等级上限 = 1
    学习间隔 = 3
    等级精通 = 1


class 技能21(猛系技能):
    名称 = "装载：烟花漫天"
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 40
    MP = [1100, 4938]
    无色消耗 = 5
    data0 = [0, 68907, 75898, 82888, 89879, 96870, 103860, 110851, 117842, 124832, 131823, 138813, 145804, 152795, 159785, 166776, 173767, 180757, 187748, 194739, 201729, 208720, 215710, 222701, 229692, 236682,
             243673, 250664, 257654, 264645, 271635, 278626, 285617, 292607, 299598, 306589, 313579, 320570, 327561, 334551, 341542, 348532, 355523, 362514, 369504, 376495, 383486, 390476, 397467, 404458, 411448]
    hit0 = 1

    是否有护石 = 1

    def 装备护石(self, char):
        self.data1 = self.data0
        self.hit1 = 4
        self.power1 = 0.08
        self.CDR *= 0.9


class 技能22(主动技能):
    名称 = "神雾兵仗·北极星"
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 180
    MP = [2396, 10757]
    无色消耗 = 10
    data0 = [0, 1708, 2104, 2501, 2897, 3293, 3689, 4085, 4482, 4878, 5274, 5670, 6067, 6463, 6859, 7255, 7651, 8048, 8444, 8840, 9236, 9632, 10029, 10425, 10821, 11217, 11614,
             12010, 12406, 12802, 13198, 13595, 13991, 14387, 14783, 15179, 15576, 15972, 16368, 16764, 17161, 17557, 17953, 18349, 18745, 19142, 19538, 19934, 20330, 20726, 21123]
    hit0 = 20
    data1 = [0, 170867, 210489, 250110, 289732, 329353, 368975, 408596, 448218, 487839, 527460, 567082, 606703, 646325, 685946, 725568, 765189, 804811, 844432, 884054, 923675, 963297, 1002918, 1042540, 1082161, 1121783, 1161404,
             1201026, 1240647, 1280269, 1319890, 1359511, 1399133, 1438754, 1478376, 1517997, 1557619, 1597240, 1636862, 1676483, 1716105, 1755726, 1795348, 1834969, 1874591, 1914212, 1953834, 1993455, 2033077, 2072698, 2112320]
    hit1 = 1

    形态 = ['满', '秒C']

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "满":
            self.hit0 = 20
            self.hit1 = 1
        if 形态 == "秒C":
            self.hit0 = 0
            self.hit1 = 1


class 技能23(被动技能):
    名称 = '星辰装置'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能24(猛系技能):
    名称 = "装置驱动：星云"
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 60
    MP = [1398, 6277]
    无色消耗 = 7
    data0 = [0, 26672, 29378, 32084, 34790, 37495, 40201, 42907, 45613, 48319, 51025, 53731, 56437, 59143, 61848, 64554, 67260, 69966, 72672, 75378, 78084, 80790, 83496, 86202, 88907, 91613, 94319,
             97025, 99731, 102437, 105143, 107849, 110555, 113260, 115966, 118672, 121378, 124084, 126790, 129496, 132202, 134908, 137613, 140319, 143025, 145731, 148437, 151143, 153849, 156555, 159261]
    hit0 = 1
    data1 = [0, 106689, 117513, 128336, 139160, 149983, 160807, 171630, 182454, 193278, 204101, 214925, 225748, 236572, 247395, 258219, 269043, 279866, 290690, 301513, 312337, 323160, 333984, 344808, 355631,
             366455, 377278, 388102, 398925, 409749, 420573, 431396, 442220, 453043, 463867, 474690, 485514, 496338, 507161, 517985, 528808, 539632, 550455, 561279, 572102, 582926, 593750, 604573, 615397, 626220, 637044]
    hit1 = 1


class 技能25(主动技能):
    名称 = "神雾星仗·人马座星云"
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 290
    MP = [3944, 17712]
    无色消耗 = 15
    data0 = [0, 133599, 164578, 195558, 226537, 257517, 288496, 319476, 350455, 381435, 412414, 443394, 474373, 505353, 536333, 567312, 598292, 629271, 660251, 691230, 722210, 753189, 784169, 815148, 846128, 877107, 908087,
             939066, 970046, 1001025, 1032005, 1062984, 1093964, 1124944, 1155923, 1186903, 1217882, 1248862, 1279841, 1310821, 1341800, 1372780, 1403759, 1434739, 1465718, 1496698, 1527677, 1558657, 1589636, 1620616, 1651595]
    hit0 = 1
    data1 = [0, 311731, 384017, 456302, 528588, 600873, 673159, 745444, 817730, 890015, 962301, 1034586, 1106872, 1179158, 1251443, 1323729, 1396014, 1468300, 1540586, 1612871, 1685156, 1757442, 1829727, 1902013, 1974299, 2046584,
             2118870, 2191155, 2263441, 2335726, 2408012, 2480298, 2552583, 2624869, 2697154, 2769440, 2841725, 2914011, 2986296, 3058582, 3130868, 3203153, 3275439, 3347724, 3420010, 3492296, 3564581, 3636867, 3709152, 3781437, 3853723]
    hit1 = 1


class classChange(Character):
    def __init__(self, equVersion=""):
        self.实际名称 = 'traveler'
        self.名称 = '聆风·旅人'
        self.角色 = '弓箭手'
        self.角色类型 = '输出'
        self.职业 = '旅人'
        # 用来筛CP武器的
        self.武器选项 = ['玄机弓']
        self.输出类型选项 = ['物理百分比']
        self.防具精通属性 = ['力量']
        self.类型 = '物理百分比'
        self.武器类型 = '玄机弓'
        self.防具类型 = '皮甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 2.00

        super().__init__(equVersion)
